﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using iLangl.Plugin;
using iLangl.Security;
using iLangl.Transport.Communication;
using iLangl.StateMachine;

namespace iLangl.Customer
{
	public class CustomerFacade: BaseFacade, IFacade
	{
		public CustomerFacade()
			: base()
		{
			if (AuthenticationService == null) { AuthenticationService = new CustomerAuthenticationService(); }
			if (ActionManager == null) { ActionManager = new BaseActionManager(); }
			if (CommunicationManager == null) { CommunicationManager = new BaseCommunicationManager(null); }
			if (StateMachine == null) { StateMachine = new BaseStateMachine(); }
			if (PackageManager == null) { PackageManager = new PluginPackageManager(new PluginAuthenticationService()); }
			if (ModelFactory == null) { ModelFactory = new CustomerModelFactory(); }
			if (AlertManager == null) { AlertManager = new AlertManager(); }
		}
	}
}
